import axios from "axios";

const baseURL = "http://localhost:8080";
/**
 * 申明一个常量对象
 * @type {{}}
 */
const taskRequest={
    // 可以申明一些方法
    /**
     * 根据项目编号加载这个项目下的所有的任务
     * @param projectId
     * @param parentId 父任务编号
     * @param callBack  回调函数
     */
    loadTaskByProjectId(taskQuery,projectId,parentId,callBack){
        let url = baseURL + "/task/list?projectId=" + projectId + "&parentId=" + parentId ;
            if(taskQuery){
                if(taskQuery.taskTitle){
                    url += "&taskTitle="+taskQuery.taskTitle;
                    }
                    if(taskQuery.taskStatus){
                    url += "&taskStatus="+taskQuery.taskStatus;
                    }
                    if(taskQuery.startTimeBegin){
                    url += "&startTimeBegin="+taskQuery.startTimeBegin;
                    }
                    if(taskQuery.startTimeEnd){
                    url += "&startTimeEnd="+taskQuery.startTimeEnd;
                    }
                    if(taskQuery.endTimeBegin){
                    url += "&endTimeBegin="+taskQuery.endTimeBegin;
                    }
                    if(taskQuery.endTimeEnd){
                    url += "&endTimeEnd="+taskQuery.endTimeEnd;
                    }
            }
            // 发送请求
            axios.get(url)
                // then是一个函数，这个函数的参数也是一个函数
                .then(res=>{
                    // 这里的res就是得到的结果，但是这个结果已经被Axios封装了
                    callBack(res.data)// 调用回调函数，将结果数据传入回调函数
                })
    },    
    save(task,callBack){
        axios.post(baseURL + "/task/save",task)
            .then(res=>callBack(res.data));
    },
    getById(taskId,callBack){
        axios.get(baseURL + "/task/get?taskId=" + taskId)
            .then(res=>callBack(res.data));
    },update(task,callBack){
        axios.put(baseURL + "/task/update",task)
        .then(res=>callBack(res.data));
    },deleteTask(task){
        return axios.post(baseURL + "/task/delete",task);
    },deletesTask(taskIds){
        return axios.post(baseURL + "/task/deletes",taskIds)
    }
}
// 将我们的请求对象暴露处理
export default taskRequest;